package com.event.management.backend.service;

import com.event.management.backend.dto.*;

import java.util.List;

/**
 * 报表服务接口
 */
public interface ReportService {
    
    /**
     * 获取全站概况统计
     * @return 全站概况统计数据
     */
    ReportOverviewDTO getSystemOverview();
    
    /**
     * 获取活动销售统计
     * @param eventId 活动ID
     * @return 活动销售统计数据
     */
    EventReportDTO getEventReport(Long eventId);
    
    /**
     * 获取销售趋势数据
     * @param eventId 活动ID
     * @param range 时间范围（7d, 30d, custom）
     * @param startDate 自定义范围开始日期（可选）
     * @param endDate 自定义范围结束日期（可选）
     * @return 销售趋势数据
     */
    SalesTrendDTO getSalesTrend(Long eventId, String range, String startDate, String endDate);
    
    /**
     * 获取问卷反馈概览
     * @param eventId 活动ID
     * @return 问卷反馈概览数据
     */
    FeedbackReportDTO getFeedbackOverview(Long eventId);
    
    /**
     * 获取活跃用户排行
     * @param top 获取前几名（默认10）
     * @return 活跃用户列表
     */
    List<ActiveUserDTO> getActiveUsers(Integer top);
    
    /**
     * 检查用户是否有权限查看活动报表
     * @param eventId 活动ID
     * @return 是否有权限
     */
    boolean checkReportViewPermission(Long eventId);
} 